草庐IT

AngularJS 控制器

全部标签

go - 打开新的控制台窗口

我可以使用哪些代码让我的golang程序可以打开一个新的控制台窗口?我有一个程序A正在运行程序B,因此程序B没有控制台窗口(stdin和stdout用于与程序A交互)。我希望程序B在新的控制台窗口(以及程序A的控制台窗口)中显示用户友好的信息,以便很容易看到正在发生的事情。 最佳答案 下面的代码可以在Ubuntu上运行,它是一个示例程序,除非您键入“新控制台”,否则它会回显输入,在这种情况下,它会在单独的控制台中再次执行。它通过执行:gnome-terminal-e请注意,这可能是特定于操作系统的,因为每个操作系统风格都有不同的打开

unit-testing - 如何测试在 golang 中打印到控制台的方法?

我有下一个结构。packageloggerimport"fmt"typeIPrinterinterface{Print(valuestring)}typeConsolePrinterstruct{}func(cp*ConsolePrinter)Print(valuestring){fmt.Printf("thisisvalue:%s",value)}测试范围说我需要测试ConsolePrinterPrint方法。如何覆盖这个方法?谢谢。 最佳答案 根据@icza写的评论,我在下面编写了测试。funcTestPrint(t*testi

go - 以下哪些是 Go 中用于控制循环的有效关键字?

我看到这个问题的正确答案是“forandrange”。但是for语句是Go中唯一可用的循环语句,并且range关键字允许您迭代列表的项目,如数组或映射。为了理解它,您可以将range关键字翻译成foreachindexof。//forlooppackagemainimport"fmt"funcmain(){fori:=0;i 最佳答案 我认为问题是关于不同形式的For循环:简单的循环变体工作示例:packagemainimport"fmt"funcmain(){//0123456789fori:=0;i对于数组、slice、字符串、

go - CLI 应用程序中的控制箭头键

我想构建一个(golang)库,为用户提供多种选择。我的想法是打印选项的名称并将其中一个突出显示为“事件”。按下箭头键(左右或上下)后,我想在内部和可见地更新“选定”答案。我知道termbox和tcell我还检查了像peco和rat这样的项目.它们似乎都建立在某种屏幕的基本概念之上。理想情况下,我希望将控件保持在用户正在其终端中编辑的行中,而不创建全屏交互。有什么办法可以实现吗? 最佳答案 ncurses是Linux中一个流行的终端控制库,它有Gobindings(也支持OSX和Windows)。我从来没有使用过它们,所以我不能保证

node.js - 您如何在Go中获得“实时”控制台输出?

这个问题已经有了答案:RedirectstdoutpipeofchildprocessinGo3答这在高朗是什么意思?基本上,我希望能够执行一个命令,在它出来的时候把它分成几部分。这是目前node.js中的一个例子。varexec=require('child_process').exec;exec('ls').stdout.on('data',data=>{console.log(data);});意图:意图是运行一个命令,然后使用websockets将其作为服务器实时输出。 最佳答案 你可以看看这里:https://golang

windows - 如何打印到控制台窗口?

我想像这样从cmd运行我的go程序:C:\go\awesomeProject>goprogramm.exe-generate-val=2并希望得到这样的反馈:>Processstarted>Somethingwentwrong.Typee-mailtoreceivereport:>|...是的,我用谷歌搜索了很多。标准输出、执行、管道等。不能混为一谈。 最佳答案 最简单的是使用fmt包及其全局函数,例如:fmt.Println("Processstarted")fmt.Println("Somethingwentwrong.Type

go - 从控制台接受一个字符并显示它的下一个字符

我想编写一个程序,从控制台接受一个字符并显示它的下一个字符。这是我尝试过的:packagemainimport("fmt")funcmain(){varchint32fmt.Printf("EnterChar:")fmt.Scan(&ch)ch++fmt.Printf("NextCharis%s",string(ch))} 最佳答案 Go中的“字符”称为runes,rune是int32的别名。您需要进行两项更改:用正确的动词扫描(您的扫描实际上失败了——检查错误!)用正确的动词打印这是一个扩展的例子:packagemainimpor

go - 如何在 Golang 中查找来自控制台的标志数

我正在从控制台传递参数。还有一些旗帜。喜欢:goruntest.go"-IP=10.10.10.10""-db=kite""-wv=45""-cv=75""A=value1""B=value2""C=100""D:=((A-B)/A)*C""D?"这里,-IP,-db,-wv,-wc这四个是flags等据我所知,正在作为正常参数传递。标志的数量可以是可变的。我怎么知道有多少标志传递到我的程序。在这种情况下,传递了4标志。 最佳答案 如果你使用标准的flag包来解析命令行标志,你可以调用NFlag函数来获取标志的数量:packagem

go - Zap 记录器打印到控制台和日志文件

我已将Zap与我的go应用程序集成,我们将日志打印在两个日志文件中,我还使用Lumberjack进行日志轮换。但我也试图在控制台中显示日志,但这种情况下运气不好。以下是我在logger.go中的代码var(Logger*zap.LoggerN2n*zap.Logger)typeWriteSyncerstruct{io.Writer}func(wsWriteSyncer)Sync()error{returnnil}funcInitLogging(modestring){varcfgzap.ConfigvarlogName="abc.log"varslogName="n2n.log"ifm

go - 如何强制编译器控制值/值指针函数参数?

处理go的函数时,我发现在使用“通用”接口(interface){}类型时,无法强制编译器控制我是传递值参数还是值指针参数。funcf(ointerface{}){...}最明显的解决方案是使用以下修改:funcf(o*interface{}){...}虽然编译成功了,但我发现这一步不对。那么,有什么方法可以表明我想传递任何指针? 最佳答案 你必须使用reflection.import"reflect"funcf(ointerface{}){if_,ok:=reflect.Typeof(o).(*reflect.PtrType);!